/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package produccion;

import java.text.DecimalFormat;
import java.util.ArrayList;

/**
 *
 * @author Jorge
 */
public class Volante extends Publicacion implements IRefilado {

    public Volante(String titulo, String cliente, Formato formato, Integer tiraje) {
        super(titulo, cliente, formato, tiraje);
    }    
    
    @Override
    Double calcularPlacas() {
        Double placasInteriores=0.0;
        
        for (InteriorNoCompaginable i : getInterioresNoCompaginables()) {
            placasInteriores += i.calcularPlacas();
        }
        
        return placasInteriores;
    }

    @Override
    Double calcularTiempoImpresion() {
        Double tiempoInteriores=0.0;
        
        for (int i = 0; i < getInterioresNoCompaginables().size(); i++) {
            tiempoInteriores += getInterioresNoCompaginables().get(i).calcularTiempoImpresion();
        }
        
        return tiempoInteriores;
    }    

    @Override
    public Double calcularTiempoRefilado() {
        return (double) 15 / 60;
    }
    
    private Double calcularTiempoAcabado(){
        return calcularTiempoRefilado();
    }
    
    private Double calcularTiempoProduccion(){
        return calcularTiempoImpresion() + calcularTiempoAcabado();
    }
    
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("#.#####");
        
//        Volante v = new Volante("VOLANTES","CINFO",Formato.A5,100000);
//        InteriorNoCompaginable inte1 = new InteriorNoCompaginable(Color.CUATRO,Color.CUATRO,new Maquina(NMaquina.ROLAND200),new Maquina(NMaquina.ROLAND200));    
//        ArrayList<InteriorNoCompaginable> inters = new ArrayList<>();
//        inters.add(inte1);

          
//        Volante v = new Volante("AFICHE","CINFO",Formato.A3,10000);
//        InteriorNoCompaginable inte1 = new InteriorNoCompaginable(Color.CUATRO,Color.NINGUNO,new Maquina(NMaquina.ROLAND200),new Maquina(NMaquina.ROLAND200));    
//        ArrayList<InteriorNoCompaginable> inters = new ArrayList<InteriorNoCompaginable>();
//        inters.add(inte1);
        
//        Volante v = new Volante("TRIPTICO","Of. General de Cooperacion y Relaciones Interinstitucionales",Formato.A4,1000);
//        InteriorNoCompaginable inte1 = new InteriorNoCompaginable(Color.CUATRO,Color.CUATRO,new Maquina(NMaquina.ROLAND200),new Maquina(NMaquina.ROLAND200));    
//        ArrayList<InteriorNoCompaginable> inters = new ArrayList<InteriorNoCompaginable>();
//        inters.add(inte1);
        
        
//        Volante v = new Volante("BROCHURE","Of. General de Cooperacion y Relaciones Interinstitucionales",Formato.A4,1000);
//        InteriorNoCompaginable inte1 = new InteriorNoCompaginable(Color.CUATRO,Color.CUATRO,new Maquina(NMaquina.ROLAND200),new Maquina(NMaquina.ROLAND200));    
//        ArrayList<InteriorNoCompaginable> inters = new ArrayList<InteriorNoCompaginable>();
//        inters.add(inte1);
        
        Volante v = new Volante("TRIPTICO","TURISMO",Formato.A4,1000);
        InteriorNoCompaginable inte1 = new InteriorNoCompaginable(Color.CUATRO,Color.CUATRO,new Maquina(NMaquina.ROLAND200),new Maquina(NMaquina.ROLAND200));    
        ArrayList<InteriorNoCompaginable> inters = new ArrayList<InteriorNoCompaginable>();
        inters.add(inte1);
        
        
        
        inte1.setPub(v);
        
        v.setInterioresNoCompaginables(inters);
        
        System.out.println("Titulo: " + v.getTitulo());
        
        
        System.out.println("=====================INTERIORES====================");
        for (int i = 0; i < inters.size(); i++) {
            System.out.println("<<<<<Interior: " + (i+1) + ">>>>>");
            System.out.println("tiraje: " + df.format(v.getInterioresNoCompaginables().get(i).getPub().getTiraje()));
            System.out.println("placas tira: " + df.format(v.getInterioresNoCompaginables().get(i).calcularPlacasTira()));
            System.out.println("placas retira: " + df.format(v.getInterioresNoCompaginables().get(i).calcularPlacasRetira()));
            System.out.println("placas totales: " + df.format(v.getInterioresNoCompaginables().get(i).calcularPlacas()));
            System.out.println("tiempo tira: " + df.format(v.getInterioresNoCompaginables().get(i).calcularTiempoImpresionTira()));
            System.out.println("tiempo retira: " + df.format(v.getInterioresNoCompaginables().get(i).calcularTiempoImpresionRetira()));
            System.out.println("tiempo muerto: " + df.format(v.getInterioresNoCompaginables().get(i).calcularTiempoMuerto()));
            System.out.println("TIEMPO TOTAL INTERIOR "+ (i+1)+ ": " + df.format(v.getInterioresNoCompaginables().get(i).calcularTiempoImpresion()));
            System.out.println("");
        }

        System.out.println("=====================VOLANTE=========================");
        System.out.println("=====Impresión=====");
        System.out.println("tiraje: " + df.format(v.getTiraje()));
        System.out.println("Placas totales (interiores): " + df.format(v.calcularPlacas()));
        System.out.println("Tiempo total impresion volante: " + df.format(v.calcularTiempoImpresion()));
        
        System.out.println("======Refilado=====");
        System.out.println("Tiempo refilado: " + df.format(v.calcularTiempoRefilado()));
        
        System.out.println("Tiempo Acabados total: " + df.format(v.calcularTiempoAcabado()));
        
        System.out.println("Tiempo Producción total volante: " + df.format(v.calcularTiempoProduccion()));        
    }    
    
}
